package org.dromara.job.controller;

import org.dromara.common.core.domain.R;
import org.dromara.job.task.CompanyRatingStatisticsTask;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 公司评分统计更新控制器
 * 提供手动触发评分统计更新的API接口
 * 
 * @author system
 * @date 2024-05-20
 */
@RestController
@RequestMapping("/job/company-rating")
public class CompanyRatingStatisticsController {

    @Autowired
    private CompanyRatingStatisticsTask companyRatingStatisticsTask;

    /**
     * 手动触发公司评分统计更新
     * 该接口允许管理员在需要时立即更新所有公司的评分统计数据
     * 
     * @return 更新结果
     */
    @PostMapping("/update")
    public R<String> triggerUpdate() {
        try {
            // 异步执行更新任务，避免接口阻塞过长时间
            new Thread(() -> {
                companyRatingStatisticsTask.triggerUpdateManually();
            }).start();
            
            return R.ok("评分统计更新任务已开始执行，请稍后查看更新结果");
        } catch (Exception e) {
            return R.fail("触发评分统计更新任务失败：" + e.getMessage());
        }
    }
}